package com.hbnu.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hbnu.system.core.base.CommonPage;
import com.hbnu.system.model.dto.CheckBackDTO;
import com.hbnu.system.model.dto.TPlatformDTO;
import com.hbnu.system.model.entity.TPlatform;
import com.hbnu.system.model.query.TPlatformPageQuery;

import java.io.IOException;

/**
 * 平台信息表(TPlatform)表服务接口
 *
 * @author makejava
 * @since 2025-07-16 14:25:40
 */
public interface TPlatformService extends IService<TPlatform> {

    /**
     * 著作名查重
     *
     *
     * */
    boolean checkTPlatformname(String name);
    /**
     * 著作新增接口
     *
     * @param tPlatformdto
     * @return boolean
     */
    boolean addnewtPlatform(TPlatformDTO tPlatformdto);

    /**
     *
     * 著作修改接口
     *
     * @param tPlatformdto
     * @return boolean
     */
    boolean updatetPlatform(TPlatformDTO tPlatformdto);
    /**
     * 著作删除接口
     *
     * @param id 著作id
     * @return boolean
     */
    boolean deletetPlatform(String id) throws IOException;

    /**
     * 通过主键获得TPlatform
     *
     * @param   id
     * @return  TPlatform
     *
     */
    TPlatformDTO getTPlatformDTO(String id);

    TPlatform getTPlatform(String id);

    /**
     * 院级审核通过
     */
    Boolean collegeCheckPass(String token,String id);

    /**
     * 院级审核打回
     */
    Boolean collegeCheckBack(String token,CheckBackDTO checkBackDTO);


    /**
     * 校级审核通过
     */
    Boolean schoolCheckPass(String token,String id);

    /**
     * 校级审核打回
     */
    Boolean schoolCheckBack(String token,CheckBackDTO checkBackDTO);

    /**
     * 著作再度提交
     */
    Boolean ReCommitTPlatform(String id);
    
    /**
     * 撤回科研平台
     */
    Boolean withdrawTPlatform(String token, String id);


    /**
     * 用户分页查看与自己相关的著作
     */
    CommonPage<TPlatform> userGetRelateTPlatformDTO(TPlatformPageQuery tPlatformPageQuery);


    CommonPage<TPlatform> export(TPlatformPageQuery tPlatformPageQuery);
}

